package ar.com.larreta.colegio.client.planesdepagos;

import java.util.List;

import ar.com.larreta.colegio.intercambio.client.Detalle;
import ar.com.larreta.colegio.intercambio.client.Obligacion;
import ar.com.larreta.grilla.client.Grilla;
import ar.com.larreta.vista.client.BarraHerramientas;
import ar.com.larreta.vista.client.CajaDeTexto;
import ar.com.larreta.vista.client.Estado;
import ar.com.larreta.vista.client.Mensajes;
import ar.com.larreta.vista.client.Ventana;

public class VentanaDetalles extends Ventana {
	public static final Integer TAMANIO_TEXTO_MENSAJE = 200;

	private CajaDeTexto nombre;
	private CajaDeTexto valor;
	
	private Detalle detalle;
	
	private Grilla grilla;
	
	private SectorDetalles sectorDetalles;
	
	public SectorDetalles getSectorDetalles() {
		return sectorDetalles;
	}

	public Detalle getDetalle() {
		return detalle;
	}

	public void setDetalle(Detalle detalle) {
		this.detalle = detalle;
	}
	
	public Grilla getGrilla() {
		return grilla;
	}
	
	public VentanaDetalles(SectorDetalles sectorDetalles, Grilla grilla) {
		super(Mensajes.getInstancia().get("msg.colegio.detalles"), "");
		this.sectorDetalles = sectorDetalles;
		this.grilla = grilla;
		
		barraHerramientas = new BarraHerramientas(this, getAnchoVentana(), 25);
		add(barraHerramientas);
		
		setHeight(100);
		
		setModal(Boolean.TRUE);
		
		nombre = new CajaDeTexto(Mensajes.getInstancia().get("msg.colegio.detalles.nombre"), null);
		nombre.getCampoTexto().setWidth(TAMANIO_TEXTO_MENSAJE);
		nombre.getCampoTexto().setAllowBlank(Boolean.FALSE);
		registrarCampo(nombre.getCampoTexto());
		add(nombre.getHorizontal());

		valor = new CajaDeTexto(Mensajes.getInstancia().get("msg.colegio.detalles.valor"), null);
		valor.getCampoTexto().setWidth(TAMANIO_TEXTO_MENSAJE);
		valor.getCampoTexto().setAllowBlank(Boolean.FALSE);
		registrarCampo(valor.getCampoTexto());
		add(valor.getHorizontal());
		
		
	}
	
	public void cancelando(){
		cambiarEstadoACreacion();
		this.hide();
	}

	public void confirmando(){
		if (esValido()) {
			this.mask();
			List seleccionados = sectorDetalles.getVentanaPlanesDePagos().getSectorObligaciones().getGrilla().getSelectionModel().getSelection();
			Obligacion obligacion = (Obligacion) seleccionados.get(0);
			
			if (estado.equals(Estado.CREACION)){
				detalle = new Detalle();
			}
			
			detalle.setNombre((String)nombre.getCampoTexto().getValue());
			detalle.setValor(new Double((String)valor.getCampoTexto().getValue()));
			
			if (estado.equals(Estado.CREACION)){
				grilla.agregarDato(detalle);
				obligacion.addDetalle(detalle);
			}
			
			obligacion.refreshValue();
			
			List selectedItems = sectorDetalles.getVentanaPlanesDePagos().getSectorObligaciones().getGrilla().getSelectionModel().getSelectedItems();
			sectorDetalles.getVentanaPlanesDePagos().getSectorObligaciones().getGrilla().load();
			sectorDetalles.getVentanaPlanesDePagos().getSectorObligaciones().getGrilla().getSelectionModel().setSelection(selectedItems);

			grilla.load();
			this.unmask();
			this.hide();
		}
	}


	public CajaDeTexto getNombre() {
		return nombre;
	}

	public CajaDeTexto getValor() {
		return valor;
	}
	
}
